feat: SRT 1.5.7 + CERALIVE SRTLA options (PERIODICNAKGATE tri-state, SRTLAPATCHES compat) - #25
Merged
Merged
Conversation
…on (Haivision#3349) * Fixed gcov rule. Fixed ABI compliance checker to use local installation * Removed codecov for C++03. Fixed wrong call path for gdb after tests * Fixed crypto tests build break when encryption disabled * Fixed CI on macos. Tracking a problem on ABI * Refactored TestEnforcedEncryption to simplify initialization * Fixed ABI. Fixed mac warn build break on ENC=no * Added missing ASH variable to output * Tracking problem with ABI * Changed abi compliance checker to official package. Fixed options in configure-data * Preserved RES up until the end to prevent error blocking report download * Changed command call to swallow error result (prevents premature interrupt of the step) * Fixed uploading HTML report for ABI * I hate YAML * Using Create Browser Link instead * Changed ABI reporting to uploading html with no zipping * Updated Ubuntu packages before installing --------- Co-authored-by: Mikolaj Malecki <mmalecki@haivision.com>
…#3323) * [core] Added checks to prevent rogue CMD MSG to sneak thru * [core] Fixed OOB read in ACK payload parsing. * Added protection against rogue DROPREQ. Added status return for cmd dispatchers. Changed tests for cmd dispatchers to work on a connected socket. Added protection against rogue DROP in receiver buffer * Fixed codespell * Wrong keyword for CUnit in tests --------- Co-authored-by: Mikolaj Malecki <mmalecki@haivision.com>
* Fixed vulnerabilities reported as SRTX-61 * Next portion of fixes from SRTX-62 * Fixed #11 for SRTX-62 * Added MD5 check to the dependency installer scripts * Applied safety fixes for Windows installer scripts * Post-review fixes for vulnerability issues * Post-review fixes, take 3 * Remaining parts of Take 3 * Fixes, take 4. Fixed ASSERT usage in FEC tests * Take 5, possibly final * Fixed build break with --disable-encryption * Fixed codespell --------- Co-authored-by: Mikolaj Malecki <mmalecki@haivision.com>
Updated link to SRT Alliance Deployment Guide
Co-authored-by: Clément Gérouville <cgerouville@haivision.com>
`socketconfig.h` is compiled by the C++03 lane (.github/workflows/ubuntu-c++03.yml, -DUSE_CXX_STD=03 with -DCMAKE_COMPILE_WARNING_AS_ERROR=ON), where `constexpr` is rejected by -Werror=c++11-compat. Use `static const int`, the same form the adjacent SRT_OHEAD_DEFAULT_P100 uses, which is C++03-valid and equally a compile-time constant for the two consumers (socketconfig.cpp setter and test/test_srtlapatches.cpp).
…AKGATE The constant was introduced as a placeholder pinned to 2 pending the D10 A/B (plan upstream-rebase-hard-fork todos 36/38). That campaign has now run: 24/24 valid rows, 2 arms x 4 netem loss/reorder cells x 3 runs, no retries. Arm 1 (filter) won viewer-observed loss on 1 of 4 cells where the frozen rule requires at least 3, and the goodput guard held on all 4, so WINNER = 2. The measured winner equals the placeholder, so the value is unchanged and this commit is a no-op for the build. Only the comment changes, so that the default no longer reads as provisional and its provenance is explicit in the source.
Add a Releases section recording the SRTLA option set as it actually ships: Haivision base v1.5.7 (899348d, absorbed by true merge 7a6cc86), tag srt-v1.5.7+ceralive.2, both .deb filenames, and the additive-ABI statement. Two tables carry the contract downstream consumers depend on. The first gives the exact option numbers and semantics (118 SRTO_SRTLAPATCHES compat shim mapping onto 120 SRTO_REORDERFREEZE plus 119 SRTO_PERIODICNAKGATE = 2). The second is the four-site equivalence with upstream irlserver/srt SRTLAPATCHES=1: sites 1-3 exact, site 4 exact at the shipped default because SRTLA_PATCHES_DEFAULT_NAKGATE is 2, matching f229719:srtcore/core.cpp:12018-12029. The D10 A/B is recorded as measured rather than pending, with its campaign shape, verdict and rule hash, and the three places that still described the default as provisional are corrected. Also corrects a documentation error found while writing the table: SRTO_REORDERFREEZE has no URI row in apps/socketoptions.hpp, so reorderfreeze= is not a supported URI spelling. Documented rather than added, since adding the row is a functional change outside this release.
…ing one SRTO_PERIODICNAKGATE=2 was described as "the arm the D10 A/B measures" and the SRTO_SRTLAPATCHES default as "initially 2". The A/B has run and selected 2, so both readings are now wrong in the same direction: they present a settled default as provisional.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Merges Haivision SRT v1.5.7 into the CeraLive line as a true merge and adds two
additive, default-preserving CeraLive socket options on top.
Commits
7a6cc86chore: merge Haivision SRT v1.5.7(true merge, retainsSRTO_REORDERFREEZE = 120and deterministic socket teardown)4bd4a86feat(srtcore): SRTO_PERIODICNAKGATE tri-state (off/filter/suppress)—SRTO_PERIODICNAKGATE = 1195d6f591feat(srtcore): SRTO_SRTLAPATCHES compat enumerator mapping to CERALIVE options—SRTO_SRTLAPATCHES = 118Socket options
SRTO_PERIODICNAKGATE = 119— tri-state (0off /1filter /2suppress),SRTO_R_PRE, receiver-side. Default0(off) — stock behaviour unchanged.SRTO_SRTLAPATCHES = 118— compat shim; a non-zero write setsbReorderFreeze = trueandiPeriodicNakGate = SRTLA_PATCHES_DEFAULT_NAKGATE.Reads back as
bReorderFreeze && iPeriodicNakGate != 0. An explicitSRTO_PERIODICNAKGATEwrite afterwards overrides it (last write wins).Both enumerators are appended HIGH (never gap-filled) so they cannot collide with
future upstream option numbers. Both are default-off: a caller that never sets them
gets byte-identical stock behaviour.
ABI
Purely additive enumerators in
SRT_SOCKOPTplus additiveCSrtConfigfields.No symbol removed, no enumerator value changed, no public struct layout changed.
.github/workflows/abi.ymlcompares against the immutablesrt-v1.5.6+ceralive.1tag per
AGENTS.md→ "ABI baseline".Tests
test/test_periodic_nak_gate.cpp(new) andtest/test_srtlapatches.cpp(new).Full local serial
ctest: 294/294 passed.Docs
docs/CERALIVE-PATCHES.mdanddocs/API/API-socket-options.mdupdated for 118/119/120.